1
O Poder da Introspecção
AI035Lesson 15
00:00

No Ruby, o código não é apenas um script estático—ele é um sistema vivo. Introspecção é o superpoder que permite aos objetos possuir 'autoconhecimento', transformando-os de caixas pretas em mapas pesquisáveis de funcionalidades. Mesmo valores imediatos como inteiros podem ser interrogados sobre sua origem e capacidades em tempo de execução.

1. A Interface Viva

Ao chamar obj.métodos(regular=true), acessamos o vocabulário funcional completo de um objeto. Um objeto Range simples (r = 1..10) revela um número impressionante de 68 métodos distintos, refletindo sua herança rica de Object e do Enumerable mixina.

Barra Lateral [A]ArrayAtan2AutoCarregarClasse Array < ObjectEnumerableAssinatura do Método: Array#empacotarEntrada: string de modeloSaída: String Binária

2. Descoberta Dinâmica

O responde_a? método age como um portão de controle em tempo de execução, permitindo Tipagem de Patinho. Em vez de perguntar 'O que você é?', perguntamos 'Você consegue fazer isso?'. Essa flexibilidade permite que os programas se adaptem com base em capacidades reais, como verificar se uma string responde a símbolos semelhantes à atribuição (=) ou se um valor numérico suporta uma consulta específica Consulta de Hierarquia.

3. A Ponte da Metadocumentação

Ferramentas como RDoc usam esses recursos para gerar layout de listagens alfabéticas e diagramas de assinaturas de métodos automaticamente. Consultando constantes de módulo e variáveis de instância, os desenvolvedores podem navegar pela estrutura inteira do namespace de forma programática, fechando a lacuna entre arquivos-fonte e a execução ativa.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>